package com.jchz.net;


import android.content.Context;
import android.text.TextUtils;
import android.util.Log;

import com.baidu.tts.client.SpeechSynthesizer;
import com.jchz.net.comhttp.HttpUtils;
import com.jchz.net.comhttp.callback.StringCallBack;
import com.jchz.net.util.OfflineResource;
import com.jchz.net.util.SpUtils;
import com.utils.gyymz.mvp.base.BasePresenterImpl;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * MVPPlugin
 * 邮箱 784787081@qq.com
 */

public class RoomCopanePresenter extends BasePresenterImpl<RoomCopaneContract.View> implements RoomCopaneContract.Presenter {

    private String TAG = "RoomCopanePresenter";

    // GET /api/Room/RoomCompaneVoice//获取排钟语音播报
    public void getRoomCompaneVoice() {
        HttpUtils.getInstance().executeGet(AppConfig.ROOMCOMPANEVOICE, null, new StringCallBack() {
            @Override
            protected void onXError(String exception) {
            }

            @Override
            protected void onSuccess(String response) {
                Log.e("TAG", response);
                if (mvpView!=null){
                    mvpView.getRoomScheduleDataSuccess(response);
                }

            }
        });
    }


    //GET /api/Room/RoomCompane 获取房间安排信息  左边
    public void getRoomCompaneData() {
        HttpUtils.getInstance().executeGet(AppConfig.ROOMCOMPANE, null, new StringCallBack() {
            @Override
            protected void onXError(String exception) {
            }
            @Override
            protected void onSuccess(String response) {
                Log.e("TAG", response);
                if (mvpView!=null){
                    mvpView.getRoomCompaneDataSuccess(response);
                }
            }
        });
    }


    // GET /api/Room/RoomSchedule 获取房间预约信息  右边
    public void getRoomScheduleData() {
        HttpUtils.getInstance().executeGet(AppConfig.ROOMSCHEDULE, null, new StringCallBack() {
            @Override
            protected void onXError(String exception) {
            }
            @Override
            protected void onSuccess(String response) {
                Log.e("TAG", response);
                if (mvpView!=null){
                    mvpView.getRoomScheduleDataSuccess(response);
                }

            }
        });
    }




    // GET /api/Room/RoomSchedule 获取房间预约信息  下面
    public void getRoomCompaneGroupDetail() {
        HashMap<String, String> stringStringHashMap = new HashMap();
        String classy = SpUtils.getInstance().getString(AppConfig.KEY_CLAYSS);
        if (TextUtils.isEmpty(classy)) {
            classy = "足浴，养生，小项，SPA";
            SpUtils.getInstance().saveString(AppConfig.KEY_CLAYSS, classy);
        }
        stringStringHashMap.put("groupNames", classy);
        HttpUtils.getInstance().executeGet(AppConfig.ROOMCOMPANEGROUPDETAIL, stringStringHashMap, new StringCallBack() {
            @Override
            protected void onXError(String exception) {
            }
            @Override
            protected void onSuccess(String response) {
                if (mvpView!=null){
                    mvpView.getRoomCompaneGroupDetailSuccess(response);
                }

            }
        });
    }



    /**
     * 合成的参数，可以初始化时填写，也可以在合成前设置。
     *
     * @return
     */
    protected Map<String, String> getParams(Context context) {
        String offlineVoice = OfflineResource.VOICE_MALE;
        Map<String, String> params = new HashMap<>();
        // 以下参数均为选填
        // 设置在线发声音人： 0 普通女声（默认） 1 普通男声 2 特别男声 3 情感男声<度逍遥> 4 情感儿童声<度丫丫>
        params.put(SpeechSynthesizer.PARAM_SPEAKER, "0");
        // 设置合成的音量，0-9 ，默认 5
        params.put(SpeechSynthesizer.PARAM_VOLUME, "9");
        // 设置合成的语速，0-9 ，默认 5
        params.put(SpeechSynthesizer.PARAM_SPEED, "5");
        // 设置合成的语调，0-9 ，默认 5
        params.put(SpeechSynthesizer.PARAM_PITCH, "5");

        params.put(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_DEFAULT);
        // 该参数设置为TtsMode.MIX生效。即纯在线模式不生效。
        // MIX_MODE_DEFAULT 默认 ，wifi状态下使用在线，非wifi离线。在线状态下，请求超时6s自动转离线
        // MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线，非wifi离线。在线状态下， 请求超时1.2s自动转离线
        // MIX_MODE_HIGH_SPEED_NETWORK ， 3G 4G wifi状态下使用在线，其它状态离线。在线状态下，请求超时1.2s自动转离线
        // MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线，其它状态离线。在线状态下，请求超时1.2s自动转离线

        // 离线资源文件， 从assets目录中复制到临时目录，需要在initTTs方法前完成
        OfflineResource offlineResource = createOfflineResource(context,offlineVoice);
        // 声学模型文件路径 (离线引擎使用), 请确认下面两个文件存在
        params.put(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, offlineResource.getTextFilename());
        params.put(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE,
                offlineResource.getModelFilename());
        return params;
    }


    protected OfflineResource createOfflineResource(Context context, String voiceType) {
        OfflineResource offlineResource = null;
        try {
            offlineResource = new OfflineResource(context, voiceType);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return offlineResource;
    }


    // POST /api/Room/RoomCompaneVoiceAdd/{id}  更改排钟语音播报次数
    public void getRoomCompaneVoiceAdd(String id) {
        if (TextUtils.isEmpty(id)) {
            return;
        }
        HashMap<String, String> stringStringHashMap = new HashMap();
        stringStringHashMap.put("id", id);
        HttpUtils.getInstance().executePost(AppConfig.ROOMCOMPANEVOICEADD, stringStringHashMap,
                new StringCallBack() {
                    @Override
                    protected void onXError(String exception) {
                    }

                    @Override
                    protected void onSuccess(String response) {

                    }
                });
    }




}
